#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDockWidget>
#include<QLabel>
#include<QPushButton>
#include<QVBoxLayout>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //给主窗口添加一个子窗口
    QDockWidget* dockwidget =new QDockWidget();
    //QDockWidget方法，把浮动窗口加入到子窗口中
    this->addDockWidget(Qt::LeftDockWidgetArea,dockwidget);

    //浮动窗口也可以设置标题
    dockwidget->setWindowTitle("这是一个浮动窗口");


    //浮动窗口内部添加一些其他控件
    //不能直接给这个窗口添加子控件，而需要创建一个单独的QWidget，把要添加的控件插入到QWidget中
    //然后把QWidget设置到dockWidget中

    QWidget*container = new QWidget();
    dockwidget->setWidget(container);


    //创建布局管理器，把布局管理器设置到Qwidget中
    QVBoxLayout*layout = new QVBoxLayout;
    container->setLayout(layout);

    //创建其他控件
    QLabel*label = new QLabel("这是一个QLabel");
    QPushButton*button = new QPushButton("这是一个按钮");
    layout->addWidget(label);
    layout->addWidget(button);

    //设置浮动窗口允许停靠的位置
    dockwidget->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::TopDockWidgetArea);
}

MainWindow::~MainWindow()
{
    delete ui;
}
